info o exception
Otázka od: L?ikola Petr
8. 6. 2004 17:10
Zdravim, zkompiloval jsem vicevlaknovou aplikaci, kde "nekde" dochazi k
vyjimce.
o vyjimce vim z delphi eventlogu toto:
First chance exception at $7C59BA9D. Exception class ElistError with message
List index of bounds(13). Proces project1.exe ($CAB).
nechal jsem si vytvorit detailni map file map file.
Lze z vyse uvedeneho nejak zjistit, kde ta vyjimka nastava ?
Dikz
Petr Sikola
Odpovedá: Benda Lukas
26. 7. 2004 8:53
> List index of bounds(13)
Vznika tam kde pretece pocet prvku v poli. Napr. kdyz ctes z ListBoxu prvek s
poradovym cislem pet a pritom v list boxu je prvku jenom pet (rozumnej
cislovani zacina od nuly, takze prvky jsou 0 az 4).
Tohle se stava i tobe, akorat ze se snazis precist trinacty prvek, ktery ale
neexistuje.
Zkus si vlozti do try except bloku vsechno to, kde pouzivat TStrings (to muze
byt i v PopupMenu, ComboBoxu) a uvidis ze to prestane.
Btw. ale i kdyz to prestane, zkus si postupne, napr. pomoci ShowMessage vypsat
misto, kde k vijimce dochazi, neni to tak tezke zjistit.
Lukas Benda
Odpovedá: Petr Brant
26. 7. 2004 9:37
Sice nevidim puvodni dotaz (odpoved prisla driv), ale pokud jde o nalezeni
mista v kodu, ktere zpusobuje potize (rozumi se ovsem v hotove verzi, ktera
bezi u zakaznika, ne v okamziku vyvoje), tak se mi osvedcil Exceptdlg z JCL.
Jen je treba nastavit linker tak, aby generoval MAP soubor.
RNDr. Petr Brant [brant@dcomm.cz]
http://web.redbox.cz/petr.brant <http://web.redbox.cz/petr.brant>
D&COMM s.r.o.
Korunovacni 6
Praha 7
tel. +420724007234
> > List index of bounds(13)
>
> Vznika tam kde pretece pocet prvku v poli. Napr. kdyz ctes z ListBoxu
> prvek s poradovym cislem pet a pritom v list boxu je prvku jenom pet
> (rozumnej cislovani zacina od nuly, takze prvky jsou 0 az 4).
>
> Tohle se stava i tobe, akorat ze se snazis precist trinacty prvek, ktery
> ale neexistuje.
>
> Zkus si vlozti do try except bloku vsechno to, kde pouzivat TStrings (to
> muze byt i v PopupMenu, ComboBoxu) a uvidis ze to prestane.
>
> Btw. ale i kdyz to prestane, zkus si postupne, napr. pomoci ShowMessage
> vypsat misto, kde k vijimce dochazi, neni to tak tezke zjistit.
>
>